Make longtask WPT layouttests less flaky This CL improves tests in external/wpt/longtask-timing by: * Increasing the length of a longtask from ~51 to ~60 to prevent a coarse performance.now() granularity from affecting the tests. * Wrapping the long tasks or iframes containing longtasks inside onload handlers to ensure that the PerformanceObserver is registered by the time the longtask is executed. Test: third_party/blink/tools/run_web_tests external/wpt/longtask-timing --iterations=1000 did not produce flakes. Bug: 796668 Change-Id: Ic2ce59f7d221566f5443da9e9c7d36c7bd7bbe6f Reviewed-on: https://chromium-review.googlesource.com/1138725 Commit-Queue: Nicolás Peña Moreno <npm@chromium.org> Reviewed-by: Timothy Dresser <tdresser@chromium.org> Cr-Commit-Position: refs/heads/master@{#575396} diff --git a/longtask-timing/longtask-in-childiframe.html b/longtask-timing/longtask-in-childiframe.html index 536bd6e..b713704 100644 --- a/longtask-timing/longtask-in-childiframe.html +++ b/longtask-timing/longtask-in-childiframe.html
@@ -49,11 +49,13 @@ }) ); observer.observe({entryTypes: ['longtask']}); - const iframe = document.createElement('iframe'); - iframe.id = 'child-iframe-id'; - iframe.name = 'child-iframe-name'; - document.body.appendChild(iframe); - iframe.src = 'resources/subframe-with-longtask.html'; + window.onload = () => { + const iframe = document.createElement('iframe'); + iframe.id = 'child-iframe-id'; + iframe.name = 'child-iframe-name'; + document.body.appendChild(iframe); + iframe.src = 'resources/subframe-with-longtask.html'; + }; }, 'Performance longtask entries in child iframe are observable in parent.'); </script>